package cn.agiledata.bank.audit.dao;

import cn.agiledata.bank.hibernateBean.Account;
import cn.agiledata.bank.hibernateBean.AuditOperandType;
import cn.agiledata.bank.hibernateBean.AuditRule;

/**
 * @author 马贤波
 * 
 */
public interface IAuditRuleDao {

    public AuditRule getAuditRuleById(long id);

    public AuditRule getValidAuditRule(Long accountId, AuditOperandType type);

    public AuditRule[] getAuditRules(boolean systemRule, Long accountId,
            Integer valid, Boolean updatable);

    public void saveOrUpdateAuditRule(AuditRule auditRule);

    public void deleteAuditRule(AuditRule auditRule);

    public AuditRule getAuditRuleByName(boolean systemRule, Account account,
            String name);

    public AuditRule getValidAuditRuleExceptFor(Account account,
            AuditOperandType type, Long auditRuleId);

}
